package pl.edu.pk.psb.bc.ds;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "uzytkownik")
public class UzytkownikDs extends OgolnyDs {

	public static final String POLE_LOGIN = "login";
	public static final String POLE_HASLO = "haslo";

	@Column(name = "imie")
	private String imie;

	@Column(name = "nazwisko")
	private String nazwisko;

	@Column(name = POLE_HASLO)
	private String haslo;

	@Column(name = POLE_LOGIN)
	private String login;
	
	@Column(name="typ")
	private String typ;
	
	@Column(name="data_rejestracji")
	private Date dataRejestracji;

	@Column(name = "telefon")
	private String telefon;

	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "adres_id")
	private AdresDs adres;

	@Column(name = "plec")
	private String plec;
	
	@OneToMany(cascade = CascadeType.ALL)
	@JoinTable(name = "uzytkownik_ma_rezerwacje", joinColumns = { @JoinColumn(name = "id_uzytkownika") }, inverseJoinColumns = { @JoinColumn(name = "id_rezerwacji") })
	private Set<RezerwacjaDs> rezerwacje = new HashSet<RezerwacjaDs>();

	public String getImie() {
		return imie;
	}

	public void setImie(String imie) {
		this.imie = imie;
	}

	public String getNazwisko() {
		return nazwisko;
	}

	public void setNazwisko(String nazwisko) {
		this.nazwisko = nazwisko;
	}

	public String getHaslo() {
		return haslo;
	}

	public void setHaslo(String haslo) {
		this.haslo = haslo;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getTyp() {
		return typ;
	}

	public void setTyp(String typ) {
		this.typ = typ;
	}

	public Date getDataRejestracji() {
		return dataRejestracji;
	}

	public void setDataRejestracji(Date dataRejestracji) {
		this.dataRejestracji = dataRejestracji;
	}

	public String getTelefon() {
		return telefon;
	}

	public void setTelefon(String telefon) {
		this.telefon = telefon;
	}

	public AdresDs getAdres() {
		return adres;
	}

	public void setAdres(AdresDs adres) {
		this.adres = adres;
	}

	public String getPlec() {
		return plec;
	}

	public void setPlec(String plec) {
		this.plec = plec;
	}

	public Set<RezerwacjaDs> getRezerwacje() {
		return rezerwacje;
	}

	public void setRezerwacje(Set<RezerwacjaDs> rezerwacje) {
		this.rezerwacje = rezerwacje;
	}

}
